import axios from "axios";
import { ElMessage } from "element-plus";
import configt from "@/config";
const service = axios.create({
  baseURL: configt.baseApi, // api的base_url
  timeout: 30000, // 请求超时时间
});
const NETWORK_ERROR = "网络请求异常，请稍后重试";
// 添加请求拦截器
service.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
service.interceptors.response.use((res) => {
  const { code, data, msg } = res.data;
  if (code === 200) {
    return data;
  } else {
    ElMessage.error(msg || NETWORK_ERROR);
    return Promise.reject(msg || NETWORK_ERROR);
  }
});

function request(options) {
  options.method = options.method || "get";
  // 关于get请求参数的调整
  if (options.method.toLowerCase() === "get") {
    
    options.params = options.data;
  }
  // 对mock的开关做一个处理
  let isMock = configt.mock;
 
  if (typeof options.mock !== "undefined") {
    isMock = options.mock;
  }
 
 
  // 针对环境做一个处理
  if (configt.env === "prod") {
    service.defaults.baseURL = configt.baseApi;
  } else {
 
    service.defaults.baseURL = isMock ? configt.mockApi : configt.baseApi;
  //  alert(service.defaults.baseURL);
    // options.url = isMock ? options.url : config.baseApi + options.url;
  }
  return service(options);
}
export default request;
